home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / programming / other / scm / slib / makefile < prev    next >
Makefile  |  1999-04-19  |  10KB  |  298 lines

  1. # Makefile for Scheme Library
  2. # Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998 Aubrey Jaffer.
  3.  
  4. SHELL = /bin/sh
  5. intro:
  6.     @echo
  7.     @echo "Welcome to SLIB.  Read \"README\" and \"slib.info\" (or"
  8.     @echo "\"slib.texi\") to learn how to install and use SLIB."
  9.     @echo
  10.     @echo
  11.     -make slib.info
  12.  
  13. srcdir=$(HOME)/slib/
  14. dvidir=../dvi/
  15. dvi:    $(dvidir)slib.dvi
  16. $(dvidir)slib.dvi:    version.txi slib.texi $(dvidir)slib.fn
  17. #    cd $(dvidir);export TEXINPUTS=$(srcdir):;texi2dvi $(srcdir)slib.texi
  18.     -(cd $(dvidir);export TEXINPUTS=$(srcdir):;texindex slib.??)
  19.     cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)slib.texi
  20. $(dvidir)slib.fn:
  21.     cd $(dvidir);export TEXINPUTS=$(srcdir):;tex $(srcdir)slib.texi
  22. xdvi:    $(dvidir)slib.dvi
  23.     xdvi -s 6 $(dvidir)slib.dvi
  24. htmldir=../public_html/
  25. slib_toc.html:    version.txi slib.texi
  26.     texi2html -split -verbose slib.texi
  27.  
  28. slib/slib_toc.html:
  29.     cd slib;make slib_toc.html
  30.     cd slib;texi2html -split -verbose slib.texi
  31.  
  32. html:    $(htmldir)slib_toc.html
  33. $(htmldir)slib_toc.html:    slib slib/slib_toc.html slib_toc.html Makefile
  34.     hitch slib/slib_\*.html slib_\*.html $(htmldir)
  35.  
  36. prefix = /usr/local
  37. exec_prefix = $(prefix)
  38. bindir = $(exec_prefix)/bin
  39. libdir = $(exec_prefix)/lib
  40. infodir = $(exec_prefix)/info
  41. RUNNABLE = scheme48
  42. LIB = $(libdir)/$(RUNNABLE)
  43. VM = scheme48vm
  44. IMAGE = slib.image
  45. INSTALL_DATA = install -c
  46.  
  47. slib48.036:
  48.     (echo ,load `pwd`/scheme48.init; \
  49.      echo "(define *args* '())"; \
  50.      echo "(define (program-arguments) (cons \"$(VM)\" *args*))"; \
  51.      echo ,dump $(LIB)/$(IMAGE); \
  52.      echo ,exit) | scheme48
  53.     (echo '#!/bin/sh'; \
  54.      echo exec '$(LIB)/$(VM)' -i '$(LIB)/$(IMAGE)' \"\$$\@\") \
  55.       > $(bindir)/slib48
  56.     chmod +x $(bindir)/slib48
  57.  
  58. $(LIB)/slibcat:
  59.     touch $(LIB)/slibcat
  60.  
  61. slib48:    $(LIB)/slibcat Makefile
  62.     (echo ",batch on"; \
  63.      echo ",config"; \
  64.      echo ",load =scheme48/misc/packages.scm"; \
  65.      echo "(define-structure slib-primitives"; \
  66.      echo "     (export s48-error"; \
  67.      echo "       s48-ascii->char"; \
  68.      echo "       s48-force-output"; \
  69.      echo "       s48-current-error-port"; \
  70.      echo "       s48-system";\
  71.      echo "       s48-with-handler";\
  72.      echo "       s48-getenv)";\
  73.      echo "     (open scheme signals ascii extended-ports i/o"; \
  74.      echo "           primitives handle unix-getenv)"; \
  75.      echo "     (begin"; \
  76.      echo "       (define s48-error error)"; \
  77.      echo "       (define s48-ascii->char ascii->char)"; \
  78.      echo "       (define s48-force-output force-output)"; \
  79.      echo "       (define s48-current-error-port current-error-port)"; \
  80.      echo "       (define (s48-system c) (vm-extension 96 c))"; \
  81.      echo "       (define s48-with-handler with-handler)"; \
  82.      echo "       (define s48-getenv getenv)))"; \
  83.      echo ",user"; \
  84.      echo ",open slib-primitives"; \
  85.      echo "(define (implementation-vicinity) \"$(LIB)/\")"; \
  86.      echo "(define (library-vicinity) \"`pwd`/\")"; \
  87.      echo ",load scheme48.init"; \
  88.      echo "(define *args* '())"; \
  89.      echo "(define (program-arguments) (cons \"scheme48\" *args*))"; \
  90.      echo "(set! *catalog* #f)"; \
  91.      echo ",collect"; \
  92.      echo ",batch off"; \
  93.      echo ",dump $(IMAGE) \"(slib $(VERSION))\""; \
  94.      echo ",exit") | scheme48
  95.  
  96. install48: slib48
  97.     $(INSTALL_DATA) $(IMAGE) $(LIB)
  98.     (echo '#!/bin/sh'; \
  99.      echo exec $(RUNNABLE) -i '$(LIB)/$(IMAGE)' \"\$$\@\") \
  100.       > $(bindir)/slib48
  101.     chmod +x $(bindir)/slib48    
  102.  
  103. #### Stuff for maintaining SLIB below ####
  104.  
  105. VERSION = 2c5
  106. ver = $(VERSION)
  107. version.txi:    Makefile
  108.     echo @set SLIBVERSION $(VERSION) > version.txi
  109.     echo @set SLIBDATE `date +"%B %Y"` >> version.txi
  110.  
  111. scheme = scm
  112.  
  113. htmlform.txi:     *.scm
  114.     $(scheme) -rschmooz -e'(schmooz "slib.texi")'
  115. slib$(VERSION).info:    version.txi slib.texi htmlform.txi objdoc.txi
  116.     makeinfo slib.texi --no-split -o slib.info
  117.     mv slib.info slib$(VERSION).info
  118. slib.info:    slib/slib.info slib$(VERSION).info
  119.     infobar slib/slib.info slib$(VERSION).info slib.info
  120. info:    installinfo
  121. installinfo:    $(infodir)/slib.info
  122. $(infodir)/slib.info:    slib.info
  123.     cp -a slib.info $(infodir)/slib.info
  124.     install-info $(infodir)/slib.info $(infodir)/dir
  125.     -rm $(infodir)/slib.info.gz
  126. infoz:    installinfoz
  127. installinfoz:    $(infodir)/slib.info.gz
  128. $(infodir)/slib.info.gz:    $(infodir)/slib.info
  129.     gzip -f $(infodir)/slib.info
  130.  
  131. ffiles = printf.scm format.scm genwrite.scm obj2str.scm pp.scm \
  132.     ppfile.scm strcase.scm debug.scm trace.scm lineio.scm \
  133.     strport.scm scanf.scm chap.scm qp.scm break.scm stdio.scm \
  134.     strsrch.scm prec.scm schmooz.scm
  135. lfiles = sort.scm comlist.scm tree.scm logical.scm random.scm tsort.scm
  136. revfiles = sc4opt.scm sc4sc3.scm sc2.scm mularg.scm mulapply.scm \
  137.     trnscrpt.scm withfile.scm dynwind.scm promise.scm values.scm \
  138.     eval.scm
  139. afiles = ratize.scm randinex.scm modular.scm factor.scm \
  140.      charplot.scm root.scm cring.scm determ.scm selfset.scm \
  141.      psxtime.scm cltime.scm timezone.scm tzfile.scm
  142. bfiles = collect.scm fluidlet.scm struct.scm object.scm recobj.scm yasyn.scm
  143. scfiles = r4rsyn.scm scmacro.scm synclo.scm synrul.scm synchk.scm \
  144.     repl.scm macwork.scm mwexpand.scm mwdenote.scm mwsynrul.scm
  145. scafiles = scainit.scm scaglob.scm scamacr.scm scaoutp.scm scaexpp.scm \
  146.     structure.scm
  147. dfiles = defmacex.scm mbe.scm
  148. efiles = record.scm dynamic.scm queue.scm process.scm \
  149.     priorque.scm hash.scm hashtab.scm alist.scm \
  150.     wttree.scm wttest.scm array.scm arraymap.scm \
  151.     sierpinski.scm soundex.scm byte.scm nclients.scm
  152. rfiles = rdms.scm alistab.scm dbutil.scm paramlst.scm report.scm \
  153.     batch.scm makcrc.scm dbrowse.scm comparse.scm getopt.scm \
  154.     htmlform.scm getparam.scm glob.scm
  155. gfiles = tek40.scm tek41.scm
  156. docfiles = ANNOUNCE README FAQ slib.info slib.texi objdoc.txi fmtdoc.txi \
  157.     ChangeLog
  158. mfiles = Makefile require.scm Template.scm syncase.sh mklibcat.scm \
  159.     Bev2slib.scm
  160. ifiles = chez.init elk.init macscheme.init                \
  161.     mitscheme.init scheme2c.init scheme48.init gambit.init t3.init    \
  162.     vscm.init mitcomp.pat scm.init scsh.init pscheme.init STk.init    \
  163.     RScheme.init umbscheme.init
  164. tfiles = plottest.scm formatst.scm macrotst.scm scmactst.scm \
  165.     dwindtst.scm structst.scm
  166. sfiles = $(ffiles) $(lfiles) $(revfiles) $(afiles) $(scfiles) $(efiles) \
  167.     $(rfiles) $(gfiles) $(scafiles) $(dfiles)
  168. allfiles = $(docfiles) $(mfiles) $(ifiles) $(sfiles) $(tfiles) $(bfiles)
  169.  
  170. makedev = make -f $(HOME)/makefile.dev
  171. CHPAT=$(HOME)/bin/chpat
  172. dest = $(HOME)/dist/
  173. temp/slib:    $(allfiles)
  174.     -rm -rf temp
  175.     mkdir temp
  176.     mkdir temp/slib
  177.     ln  $(allfiles) temp/slib
  178.  
  179. infotemp/slib:    slib.info
  180.     -rm -rf infotemp
  181.     mkdir infotemp
  182.     mkdir infotemp/slib
  183.     ln slib.info slib.info-* infotemp/slib
  184. #For change-barred HTML.
  185. slib:
  186.     tar xzvf $(dest)slib[0-9]*.tar.gz
  187.  
  188. distinfo:    $(dest)slib.info.tar.gz
  189. $(dest)slib.info.tar.gz:    infotemp/slib
  190.     $(makedev) TEMP=infotemp/ DEST=$(dest) PROD=slib ver=.info tar.gz
  191.     rm -rf infotemp
  192.  
  193. release:    dist
  194.     cp $(srcdir)ANNOUNCE $(htmldir)SLIB_ANNOUNCE
  195.     rsync -v $(htmldir)SLIB.html $(htmldir)SLIB_ANNOUNCE martigny.ai.mit.edu:public_html/
  196.     rsync -v $(dest)README $(dest)slib$(VERSION).tar.gz martigny.ai.mit.edu:dist/
  197. #    upload $(dest)README $(dest)slib$(VERSION).tar.gz ftp.gnu.org:gnu/jacal/
  198.     make indiana
  199. indiana:
  200.     upload $(dest)slib$(VERSION).tar.gz ftp@ftp.cs.indiana.edu:/pub/scheme-repository/incoming
  201.     echo -e \
  202.     'I have uploaded slib$(VERSION).tar.gz to ftp.cs.indiana.edu:/pub/scheme-repository/incoming\n' \
  203.     'for placement into ftp.cs.indiana.edu:/pub/scheme-repository/code/lib/' \
  204.      | mail -s 'SLIB upload' -b jaffer scheme-repository-request@cs.indiana.edu
  205.  
  206. upzip:    $(HOME)/pub/slib.zip
  207.     rsync -v $(HOME)/pub/slib.zip martigny.ai.mit.edu:pub/
  208.  
  209. dist:    $(dest)slib$(VERSION).tar.gz
  210. $(dest)slib$(VERSION).tar.gz:    temp/slib
  211.     $(makedev) DEST=$(dest) PROD=slib ver=$(VERSION) tar.gz
  212.     cvs tag -F slib$(VERSION)
  213. shar:    slib.shar
  214. slib.shar:    temp/slib
  215.     $(makedev) PROD=slib shar
  216. dclshar:    slib.com
  217. com:    slib.com
  218. slib.com:    temp/slib
  219.     $(makedev) PROD=slib com
  220. zip:    slib.zip
  221. slib.zip:    temp/slib
  222.     $(makedev) PROD=slib zip
  223. distzip:    slib$(VERSION).zip
  224. slib$(VERSION).zip:    temp/slib
  225.     $(makedev) DEST=$(dest) PROD=slib ver=$(VERSION) zip
  226.     zip -d $(dest)slib$(VERSION).zip slib/slib.info
  227.     mv $(dest)slib$(VERSION).zip /c/scm/dist/
  228. pubzip:    temp/slib
  229.     $(makedev) DEST=$(HOME)/pub/ PROD=slib zip
  230.  
  231. diffs:    pubdiffs
  232. pubdiffs:    temp/slib
  233.     $(makedev) DEST=$(HOME)/pub/ PROD=slib pubdiffs
  234. distdiffs:    temp/slib
  235.     $(makedev) DEST=$(dest) PROD=slib ver=$(ver) distdiffs
  236. announcediffs:    temp/slib
  237.     $(makedev) DEST=$(dest) PROD=slib ver=$(VERSION) announcediffs
  238.  
  239. psdfiles=COPYING.psd README.psd cmuscheme.el comint.el instrum.scm pexpr.scm \
  240.     primitives.scm psd-slib.scm psd.el read.scm runtime.scm version.scm
  241. psdocfiles=article.bbl article.tex manual.bbl manual.tex quick-intro.tex
  242.  
  243. psdtemp/slib:
  244.     -rm -rf psdtemp
  245.     mkdir psdtemp
  246.     mkdir psdtemp/slib
  247.     mkdir psdtemp/slib/psd
  248.     cd psd; ln $(psdfiles) ../psdtemp/slib/psd
  249.     mkdir psdtemp/slib/psd/doc
  250.     cd psd/doc; ln $(psdocfiles) ../../psdtemp/slib/psd/doc
  251.  
  252. psdist:    $(dest)slib-psd.tar.gz
  253. $(dest)slib-psd.tar.gz:    psdtemp/slib
  254.     $(makedev) DEST=$(dest) PROD=slib ver=-psd tar.gz TEMP=psdtemp/
  255.  
  256. new:
  257.     echo `date` \ Aubrey Jaffer \ \<`whoami`@`hostname`\>> change
  258.     echo>> change
  259.     echo \    \* require.scm \(*SLIB-VERSION*\): Bumped from $(VERSION) to $(ver).>>change
  260.     echo>> change
  261.     cat ChangeLog >> change
  262.     mv -f change ChangeLog
  263.     $(CHPAT) slib$(VERSION) slib$(ver) ANNOUNCE FAQ ../scm/ANNOUNCE \
  264.         ../jacal/ANNOUNCE ../wb/README ../wb/ANNOUNCE \
  265.         $(htmldir)README.html ../dist/README \
  266.         $(htmldir)SLIB.html $(htmldir)JACAL.html \
  267.         $(htmldir)SCM.html $(htmldir)Hobbit.html \
  268.         $(htmldir)SIMSYNCH.html ../scm/scm.texi \
  269.         /c/scm/dist/install.bat /c/scm/dist/makefile \
  270.         /c/scm/dist/mkdisk.bat
  271.     $(CHPAT) $(VERSION) $(ver) README slib.texi require.scm Makefile \
  272.          $(htmldir)SLIB.html
  273.     cvs commit -m '(*SLIB-VERSION*): Bumped from $(VERSION) to $(ver).'
  274.     cvs tag -F slib$(ver)
  275.  
  276. tagfiles = version.txi slib.texi $(mfiles) $(sfiles) $(bfiles) $(tfiles)
  277. # README and $(ifiles) cause semgentation faults in ETAGS for Emacs version 19.
  278. tags:    $(tagfiles)
  279.     etags $(tagfiles)
  280. test:    $(sfiles)
  281.     scheme Template.scm $(sfiles)
  282. rights:
  283.     scm -ladmin -e"(admin:check-all)" $(sfiles) $(tfiles) \
  284.         $(bfiles) $(ifiles)
  285. report:
  286.     scmlit -e"(slib:report #t)"
  287.     scm -e"(slib:report #t)"
  288. clean:
  289.     -rm -f *~ *.bak *.orig *.rej core a.out *.o \#*
  290.     -rm -rf *temp
  291. distclean:    realclean
  292. realclean:
  293.     -rm -f *~ *.bak *.orig *.rej TAGS core a.out *.o \#*
  294.     -rm -f slib.info* slib.?? slib.???
  295.     -rm -rf *temp
  296. realempty:    temp/slib
  297.     -rm -f $(allfiles)
  298.